Recoil or Jotaiにみる技術選定の話
Recoil or Jotaiの話
Recoilがメンテされなくなってる
技術選定難しい、という話をツイッターで見た
公式がやってるかどうかだけじゃなくて、素直にソースコード読みにいけば確度上がるのにな、と思ったmiyamonz.icon
Recoilは
Flowで書かれててるし、
Flowとしても、単にJSとしてもめちゃくちゃ読みづらかった
Jotaiは
まずTSだった
core部分の読解難易度が高いものの、
miyamonz.iconが読んだタイミングではcoreが難しかった
が、それ意外のReactとの結合部分は読みやすかったし
しばらくしてもっかい見に行ったらcore部分も結構コメントが入り、よみやすさが改善されてた
時間をかければ、挙動の把握はできた
dai-shiさんがメインでやっている
いろんな有名ライブラリをメンテしている方
その分の信頼と期待もある
v2から、vanillaで動くようになった
といった感じで、数年前からmiyamonz.iconはJotaiのほうが良い、という判断をしていたし、正しかったと思う
Jotai意外の他の同じ役割のライブラリって何があるのか?
Solid.jsとかはそもそも本体がそういうふうに動いているかも
ソースコードという観点だと、実はReactのソースコードもかなり読みにくい
まずFlowだし…
これはあくまで、Flowそれ自体は悪いというわけではなく、JSの静的型付け派閥でTSに負けた、というだけの話ですが
ただ、ファイル名とかmonorepoとか、いろいろ説明が足りとらんとは思う
足りてないのは、社内で勝手に進めているから
勝手に進めることは別に悪ではないが
コミュニティで進めるほうがイマイチになるケースも有る
どこで何が用意されて、どう動くのかがわかりにくい
currentDispatcherどこから生まれるの?!とか
読みやすい実装
Reactのミニマルできれいな実装という観点だとfreが良い
最近だとhonoの中にclient側のjsxが入ったので、そっちも良いかも
この観点だと、JSXという記法はある種の福音で、コンポーネントを実現するインターフェースをバンドラレベルで記法を抽象したおかげで、適切なadapterが組めれば、Reactをやめて別の宣言的UIライブラリに切り替えのハードルが下がる 実際は、ライブラリとかにも依存してるので、そううまくいくとは限らん
だからこそ、ライブラリは、Reactの〇〇のようなhooksライブラリは入れないほうが良いだろう
Jotaiはその点、素のJSで動くようになったので偉い
しかし、UI自体のライブラリはこれは原理的に不可能
tableのライブラリとか
アプリケーションサイドとしては、ヘッドレスUI的な思想で、pureなjsに実装をなるべく寄せる、といった判断をとるべきだろう